/*
 * Zadanie 5 0
 *
 * Wykorzystaj klasę PUNKT do definicji klasy PROSTOKAT, w skład której będą wchodziły:
 *
 * dwie składowe prywatne p1, p2, które są obiektami klasy PUNKT. (lewy górny i prawy dolny róg prostokąta)
 * prywatna składowa nazwa (char* nazwa), która jak w przypadku klasy PUNKT „przechowuje” opis słowny konkretnego obiektu.
 * funkcję show wyświetlającą informacje o obiektach klasy PROSTOKAT.
 *
 * Zdefiniuj wszystkie potrzebne konstruktory i destruktory. Czy jest potrzebna definicja konstruktorów
 * kopiujących i destruktorów?
 *
 * Czy możesz zdefiniować konstruktory w klasie PROSTOKAT bez korzystania z listy inicjacji?
 *
 * Czy możesz zdefiniować konstruktory w klasie PUNKT bez korzystania z listy inicjacji?
 *
 * Przetestuj utworzoną klasę PROSTOKAT i PUNKT. Wykorzystaj poniższy przykład? Dokładnie zaobserwuj,
 * w jaki sposób wywoływane są konstruktory i destruktory klas PROSTOKAT i PUNKT, a zwłaszcza PUNKT.
 *
 * Jak czegoś nie rozumiesz to zapytaj!
 *
 * int main()
 * {
 *      PUNKT p1("p1", 10, 20), p2("p2", 1, 1);
 *      PROSTOKAT k1 = PROSTOKAT("k1", p1, p2);
 *      PROSTOKAT k2("k2",p1, PUNKT("noname", 100, 200));
 *      PROSTOKAT k3(k1);
 *
 *      p1.show();
 *      p2.show();
 *      k1.show();
 *      k2.show();
 *      k3.show();
 *
 *      return 0;
 * }
 *
 * Version: $Id: main.cpp 71 2011-12-10 07:54:45Z s8376@pjwstk.edu.pl $
 */
#include <iostream>
#include "Punkt.h"
#include "Prostokat.h"

using namespace std;

int main()
{
    PUNKT p1("p1", 10, 20), p2("p2", 1, 1);
    PROSTOKAT k1 = PROSTOKAT("k1", p1, p2);
    PROSTOKAT k2("k2", p1, PUNKT("noname", 100, 200));
    PROSTOKAT k3(k1);

    p1.show();
    p2.show();
    k1.show();
    k2.show();
    k3.show();

    cout << "powierzchnia " << k3.getName() << " " << k3.getArea() << endl;

    return 0;
}
